package com.jlnx.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.jlnx.pojo.ChainEnterprise;
import com.jlnx.pojo.CoreEnterprise;
import com.jlnx.pojo.Enterprise;
import com.jlnx.pojo.FinanceReq;
import com.jlnx.pojo.SupplyChain;
import com.jlnx.util.DBUtils;

public class SupplyChainDaoImpl {
		
	
// 
//     /**
//	 * 更改密码
//	 */
// public int changeEmpPassByENum(int eNum,String ePass) {
//		//定义相关对象
//		Connection conn = null;
//		PreparedStatement pstm=null;
//		//链接数据库
//		conn = DBUtils.getConnection();
//		//编写SQL语句
//		String sql="update emp set epass=? where empno=?";
//		//获得执行SQL语句对象
//		try {
//			pstm=conn.prepareStatement(sql);
//			//给占位符赋值
//			pstm.setString(1, ePass);
//			pstm.setInt(2, eNum);
//			//执行SQL语句，并返回结果
//			int i = pstm.executeUpdate();
//			return i;
//			
//		} catch (SQLException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} finally {
//			//关闭连接，释放结果（正序创建，逆序销毁）
//			try {
//				pstm.close();
//				conn.close();
//			} catch (SQLException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//	
//		return 0;
//		
//	}
// 
 /**
  * 全查询
  */
 public List<SupplyChain> selectSupplyChainList(){
	 
	    //定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		ResultSet rs = null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="select * from supplychain";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			//执行SQL语句，并返回结果
			rs=pstm.executeQuery();
			List<SupplyChain> list = new ArrayList<SupplyChain>();
			while(rs.next()) {
				SupplyChain supplyChain = new SupplyChain(rs.getInt(1),rs.getString(2),rs.getString(3));
				list.add(supplyChain);
			}
			return list;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	 
	return null;
	
	 
 }
 
 /**
  * 根据企业登录账号查询全部企业所在供应链
  */
 public List<SupplyChain> selectSupplyChainListByEntNo(String entNo){
	 
	    //定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		ResultSet rs = null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="select * from supplychain where message like ?";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			pstm.setString(1, "%" + entNo + "%");
			//执行SQL语句，并返回结果
			rs=pstm.executeQuery();
			List<SupplyChain> list = new ArrayList<SupplyChain>();
			while(rs.next()) {
				SupplyChain supplyChain = new SupplyChain(rs.getInt(1),rs.getString(2),rs.getString(3));
				list.add(supplyChain);
			}
			return list;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	 
	return null;
	
	 
 }
 
 /**
  * 根据企业登录账号查询核心企业是否有供应链
  */
 public int isExistChainListByEntNo(String entNo){
	 
	    //定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		ResultSet rs = null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="select * from supplychain where core=?";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			pstm.setString(1, entNo);
			//执行SQL语句，并返回结果
			rs=pstm.executeQuery();
			while(rs.next()) {
				return rs.getInt(1);//返回id
			}
			return 0;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	 
	return -1;
	
	 
 }
 
	//插入融资申请信息
	public int insertSupplyChain(SupplyChain supplyChain) {
		//定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="insert into supplychain values(DEFAULT,?,?)";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			//给占位符赋值
			//pstm.setInt(1, financeReq.getReqId());
			pstm.setString(1, supplyChain.getMessage());
			pstm.setString(2, supplyChain.getCore());
			//执行SQL语句，并返回结果
			int i = pstm.executeUpdate();
			return i;
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			//关闭连接，释放结果（正序创建，逆序销毁）
			try {
				pstm.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	
		return -1;
	}
	
	
	//更新融资申请信息
	public int updateSupplyChain(SupplyChain supplyChain) {
		//定义相关对象
		Connection conn = null;
		PreparedStatement pstm=null;
		//链接数据库
		conn = DBUtils.getConnection();
		//编写SQL语句
		String sql="update supplychain set message=? where chainId=?";
		//获得执行SQL语句对象
		try {
			pstm=conn.prepareStatement(sql);
			//给占位符赋值
			pstm.setString(1, supplyChain.getMessage());
			pstm.setInt(2, supplyChain.getId());
			//执行SQL语句，并返回结果
			int i = pstm.executeUpdate();
			return i;
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			//关闭连接，释放结果（正序创建，逆序销毁）
			try {
				pstm.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	
		return -1;
	}
	
	
    
//
//    /** 
//     * @param empName
//     * @param empSex
//     * @param empBirth
//     * @param empIdNum
//     * @return
//     */
//	public int changeEmpMsgByENum(int eNum, String eName, int eSex, Date eBirth, String eIdNum) {
//		//定义相关对象
//				Connection conn = null;
//				PreparedStatement pstm=null;
//				//链接数据库
//				conn = DBUtils.getConnection();
//				//编写SQL语句
//				String sql="update emp set ename=?,esex=?,ebirth=?,eidnum=? where empno=?";
//				//获得执行SQL语句对象 
//				try {
//					pstm=conn.prepareStatement(sql);
//					//给占位符赋值
//					pstm.setString(1, eName);
//					pstm.setInt(2, eSex);
//					pstm.setDate(3, eBirth);
//					pstm.setString(4, eIdNum);
//					pstm.setInt(5, eNum);
//					//执行SQL语句，并返回结果
//					int i = pstm.executeUpdate();
//					return i;
//					
//				} catch (SQLException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				} finally {
//					//关闭连接，释放结果（正序创建，逆序销毁）
//					try {
//						pstm.close();
//						conn.close();
//					} catch (SQLException e) {
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//				}
//			
//				return 0;
//	}
    
}
